1 package tw.com.javaworld.CH16;
2
3 import java.io.*;
4 import java.util.*;
5 import javax.servlet.jsp.*;
6 import javax.servlet.jsp.tagext.*;
7
8 public class DynamicAdd extends SimpleTagSupport implements DynamicAttributes {
9
10 private ArrayList keys = new ArrayList();
11 private ArrayList values = new ArrayList();
12
13 public void doTag() throws JspException, IOException {
14
15 JspContext ctx = getJspContext();
16 JspWriter out = ctx.getOut();
17
18 float num = 0;
19 float sum = Float.parseFloat((String)values.get(0));
20 out.print(sum);
21
22 for (int i = 1 ; i < keys.size() ; i++) {
23 String temp = (String)values.get(i);
24 num = Float.parseFloat(temp);
25 sum = sum + num;
26 out.print(" + " + num);
27 }
28
29 out.print(" = " + sum);
30 ctx.setAttribute("sum", Float.toString(sum));
31
32 }
33
34 public void setDynamicAttribute(String uri, String name, Object value) throws JspException {
35 keys.add(name);
36 values.add(value);
37 }
38}